#ifndef __SPACEWAR_GAMEOBJECT_H__
#define __SPACEWAR_GAMEOBJECT_H__

#include <engine.h>

////////////////////////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////////////////////////
class Background : public GObject
{
public:
	Background(QString name, QString bgPath);
	~Background();

	QRectF	boundingRect() const;
	void	paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget);

public:
	QPoint	ScrollPos();
	void	SetScroll(double dx, double dy);

protected:
	QPointF		m_initPos;
	QImage		m_imgBg;
	double		m_dx, m_dy;
};

////////////////////////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////////////////////////
class Ship : public GObject
{
public:
	Ship(QString name);
	~Ship();

	virtual QRectF  boundingRect() const;
    virtual void    paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);

public:
	void	SetScroll(double dx, double dy);

private:
	QPointF	m_initPos;
	int		m_w, m_h;
};

////////////////////////////////////////////////////////////////////////////////////////////////////
//
////////////////////////////////////////////////////////////////////////////////////////////////////
class Minimap : public GObject
{
public:
	Minimap(QString name, QSize size);
	~Minimap();

	virtual QRectF  boundingRect() const;
    virtual void    paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);

public:
	void		updateMinimap();
	QRect		GetScreenRectToMinimap(const QRect& rtScreen) const;
	QPoint		GetScreenPosToMinimap(const QPoint& ptGo) const;
	QPoint		ConvertPoint(const QPoint& pt) const;
	
private:
	QSize		m_size;
	//int			m_w, m_h;
	QImage		*m_pImgMap;
};

#endif // __SPACEWAR_GAMEOBJECT_H__

